<template>
  <div class="home-recommond">
    <h1>热门歌手</h1>
    <div class="wrapper" ref="wrapper">
      <ul class="content" ref="content">
        <li v-for="(item, index) in listData" :key="index"
        @click="selectItem(item)">
          <div class="cover">
            <van-image :src="item.singer_pic" radius="10" />
            <!-- <span>{{ item.access_num | numFilter(1)}}万</span> -->
          </div>
          <span>{{ item.singer_name }}</span>
        </li>
      </ul>
    </div>
  </div>
</template>

<script>
import { betterScrollHorizontal } from "../../common/betterScroll.js";
export default {
  data() {
    return {
      listData: [],
    };
  },
  /**
   * 一个vue实列被生成后会调用create函数
   * 一般可以在此函数中调用ajax获取页面初始化所需的数据
   */
  created() {
    this.getSongListData();
  },

  methods: {
    // 获取到推荐歌单的数据
    getSongListData() {
      this.$request("get", "/singer/list",{
          id:59,
          pageNo:2
      }).then((res) => {
        console.log(res);
        if (res.result == 100) {
          this.listData = res.data.list.slice(0,20);
        }
        //异步数据的一些处理
        betterScrollHorizontal(
          this,
          this.$refs.wrapper,
          this.$refs.content,
          this.listData.length, 
          10
        );//调用横向滚动的方法
      });
    },
    selectItem(item){
      const id = item.singer_mid;//获取歌单的id
      console.log(id);//控制台输出歌单id
      this.$store.dispatch('saveSinger',item)
      this.$router.push({path: `/singerId/${id}`})
      //1.命名的路由name，并加上参数，让路由简历url
      // this.$router.push({
      //   name:"singlist",
      //   params:{
      //     id:id//等同于id
      //   }
      // })
    }
  },

  // filters:{
  //   // 处理播放量的显示格式
  //   /**
  //   * param num ：小数位固定的位数
  //   * param value : 处理的数值
  //   */
  //  numFilter(value,num){
  //    // 把小数位固定为num位
  //    return parseFloat(value/10000).toFixed(num)
  //  }
  // }
};
</script>

<style scoped>

.wrapper {
  width: 100%; /*容器的宽度就是屏幕的宽度*/
  overflow: hidden;
}
ul.content li {
  /*li默认四块级元素，修改为行内元素，但要具备块级元素的特性*/
  display: inline-block;
  width: 10rem;
  vertical-align: top; /*重置方向的位置*/
}
/* li里面有两个元素：div和span，所以使用通配符*  */
ul.content li * {
  margin: 0.1rem; /*里面的元素与li边缘有个间距 */
}
ul.content li > span {
  font-size: 0.8rem;
  color: #54493b;
}
.cover {
  position: relative;
}
.cover > span {
  position: absolute;
  right: 0;
  bottom: 0.4rem;
  background-color: #a6a0a0;
  color: white;
  border-radius: 1rem;
  widows: 5rem;
}
</style>